A*N*T*Z

ANTIA'S NEW TRUE Z \ H EROES




- Vlastní místnosti -




Jak jste se už určitě dozvěděli, ANTZ umožňují pomocí tlačítka v menu načítat uživatelské mapy s koncovkou ".USR". Jak se ale vytvářejí? Co všechno je k tomu potřeba? Je to těžké?

Pokud chcete zkusit vyrobit vlastní místnost, postupně si předvedeme, jak - stačí sledovat následující kroky.





- První místnost krok za krokem -


Jak už bylo naznačeno, tvorba vlastní místnosti je velice jednoduchá. Úplně vám bude stačit i obyčejné "Microsoft Visual N++" (známý též jako "Notepad" či "Poznámkový blok").



Krok 1: Vytvoření souboru

V podadresáři hry "DATA\UserLevels" vytvořte soubor "MyFirstRoom.usr" a otevřete jej v Notepadu.



Krok 2: Tvar místnosti, zdi a chodbičky

Do souboru zapište tyto řádky (bez nadpisu, jen ty hvězdičky):

MyFirstRoom.usr
**********
****   * *
*      * *
***      *
**   *****
**    ****
*       **
**  *   **
**  ******
**********

Takhle vytvoříte místnost 10x10 políček velikou. Na místech hvězdiček budou zdi, na místech mezer budou volná pole. Zdi jsou důležité - každá místnost musí být kolem dokola (až do krajů) obklopená zdmi, aby z ní nešlo "utéct" (a to i když je jinak uzavřená). To znamená, že všechny řádky mapy musí být stejně dlouhé. Pokud některé z těchto pravidel nedodržíte, a vytvoříte něco takovéhohle:

MyFirstRoom.usr
   *******
****   * *
*      * *
***      *
 *   *****
**    ***
*       *
**  *   *
 *  *****
 ****

hra místnost nenačte a upozorní vás na pravděpodobnou chybu. Maximální možná velikost místnosti je 24x24 políček, včetně okrajových zdí.



Krok 3: Becherovka a místo na ni

Kapky Becherovky do mapy přidáte prostě zapsáním znaku b (malé "b") na patřičné místo. Místo, kam má hráč Becherovku dostat (u nás mu říkáme "spižírna") označíte znakem ?. Kapek Becherovky musí být vždy alespoň tolik, kolik je v mapě spižíren - jinak vás hra na chybu upozorní. Přidáme tedy do místnosti dvě kapky a dvě spižírny:

MyFirstRoom.usr
**********
****   *?*
*b     * *
***      *
**   *****
**    ****
*      b**
**  *  ?**
**  ******
**********

Pokud byste chtěli místo kapek Becherovky použít bedny ze Sokobana, použijte znak x. Bedny taky mají tu výhodu, že jim nevadí okena.



Krok 4: Zabydlení místnosti

V místnosti nám pořád ještě něco chybí - přesně tak, jsou to mravenci. Ty můžeme přidat pomocí znaků T, F, BW pro Tinka, Flo, Benedikta a Vilíka. Přidáme si je tedy do místnosti všechny čtyři:

MyFirstRoom.usr
**********
****   *?*
*b     *F*
***      *
**T  *****
**    ****
*      b**
**B * W?**
**  ******
**********

Pokud bychom se spokojili s tímto, byli by všichni čtyři na začátku otočení nahoru. Aby byl každý otočený jinam, přidáme do souboru čtyři řádky (je jedno, jestli je dáme na začátek, doprostřed, nebo na konec):

MyFirstRoom.usr
**********
****   *?*
*b     *F*
***      *
**T  *** *
**    ****
*      b**
**B * W?**
**  ******
**********

Tink: >
Flo: v
Benedict: ^
Willi: <

Značky uvedené za dvojtečkou (cirkumflex na klávese "6", malé "v" a znaménka menší a větší) slouží jako šipky pro určení směru natočení mravence. Jména můžete používat anglická (Benedict, Willi), ale i česká (Benedikt, Vilík) - ale pomyslete při tom na ty ubohé anglicky mluvící hráče...



Krok 5: Nejen Becherovkou živ je mravenec

Kromě Becherovky je mravenec živ (případně mrtev) také dalšími kapkami - vodou, okenou, nebo repelentem. Tyhle kapky se vkládají pomocí znaků w (voda), o (okena) a r (repelent). Tak si nějaké kapky přidáme - pane vrchní, dvakrát vodu, dvakrát repelent a jednou okenu!

MyFirstRoom.usr
**********
****   *?*
*br    *F*
***      *
**Tw *** *
**w   ****
*    o b**
**Br* W?**
**  ******
**********

Tink: >
Flo: v
Benedict: ^
Willi: <



Krok 6: Ferda mravenec - předměty všeho druhu

Teď se dostáváme asi k té nejzajímavější části - do místnosti můžeme vložit libovolně tvarovaný objekt. Stačí, když na políčka, na kterých má předmět ležet, zapíšeme libovolný znak (písmena, číslice, interpunkční znaménka...), který není využitý např. pro některého z mravenců, kapky atd. Znak také musí být použitelný v názvech souborů, takže žádné \ / : * ? " < > nebo |. Nepoužívejte také čárku ani středník (,;).

Z políček označených stejným znakem pak vznikne jeden objekt. Tak si rovnou do místnosti nějaké přidáme:

MyFirstRoom.usr
**********
**** $ *?*
*br  $L*F*
***   LLL*
**Tw *** *
**w   ****
*    o b**
**Br* W?**
**11******
**********

Tink: >
Flo: v
Benedict: ^
Willi: <

Vložili jsme tyto tři předměty:


  1. dvoupolíčkový vodorovný předmět ze znaků 1 pod Benediktem
  2. dvoupolíčkový svislý předmět ze znaků $ v horní části místnosti
  3. čtyřpolíčkový předmět ve tvaru L ze znaků L, vedle Flo

Takto je možné vytvořit objekty libovolného tvaru (dokonce ani nemusí být souvislé, tedy z jednoho kusu - můžete tak vytvořit třeba propojené magnety nebo dvojtečku z psacího stroje...)

Pro vytváření objektů můžete bezpečně použít tyto znaky:

acdefghijklmpqstyzACDEGHIJKLMNOPQRSYZ0123456789.;§'[]{}~!@#$%&_-+=

Nejlepší a nejpřehlednější ale asi bude používat hlavně číslice.
Pokud nemusíte, nepoužívejte písmena s háčky, čárkami a jinou diakritikou.
Také se snažte pro předměty používat buď jen malá, nebo jen velká písmena - Windows je totiž (na rozdíl např. od Linuxu) v názvech souborů nerozlišují, takže by vznikly potíže při načítání souborů s obrázky.



Krok 7: Zahradničení, neboli přidávání listí

Dalším důležitým prvkem jsou listy, které jednak vypadají celkem hezky, a hlavně - jdou sníst. Listy lze připojovat k existujícím objektům, nebo vytvořit list jako samostatný předmět (který pak jde celý sníst).

Samostatné listy můžeme přidat pomocí znaků n, u, ():

n pro samostatný list špičkou nahoru 
u pro samostatný list špičkou dolů   
( pro samostatný list špičkou doleva 
) pro samostatný list špičkou doprava

Listy připojené k nějakému předmětu se musejí nacházet hned vedle něj, natočené správným směrem (špičkou od předmětu). Používají se pro ně znaky ^, v, <>:

^ pro připojený list se špičkou nahoru 
v pro připojený list se špičkou dolů   
< pro připojený list se špičkou doleva 
> pro připojený list se špičkou doprava

Tak do místnosti hned nějaké to listí nasypeme:

MyFirstRoom.usr
**********
****<$ *?*
*br  $L*F*
***  vLLL*
**Tw *** *
**w   ****
*)   o b**
**Br*nW?**
**11******
**********

Tink: >
Flo: v
Benedict: ^
Willi: <

K předmětu ze znaků $ jsme teď připojili dva listy (jeden míří doleva, druhý dolů), a navíc jsme do místnosti přidali dva samostatné listy - jeden kousek od Benedikta, druhý hned vedle Vilíka.



Krok 8: Obrázky v klidu i v pohybu

Teď už je místnost vlastně hotová - lze ji otevřít a hrát, ukládat si výsledky atd. Nevypadá ovšem nic moc - zdi jsou šedé, objekty jsou složené ze čtverečků v různých odstínech modré. Pomoc je snadná - stačí do podadresáře "DATA\UserLevels\UserGraphics" zkopírovat ty správné obrázky a patřičně je pojmenovat, aby je vaše místnost poznala.


-Pozadí-

Obrázek pozadí by se měl skládat ze čtverečků, na kterých je buď zeď, nebo volno - tohle by mělo jít na první pohled odlišit.

ANTZ nejčastěji používají pozadí v rozlišení 8x8 pixelů na jedno políčko, někdy ale také 32x32 pixelů na jeden čtverec. V tomhle směru tedy není žádné omezení, jenom je potřeba říct, že pozadí menší než 8x8 pixelů na políčko vypadají už hodně hranatě, a rozlišení větší než 32x32 pixelů na pole je zbytečné, protože si hra pozadí stejně upraví na tuto velikost.

Soubor s obrázkem může být ve formátu .BMP nebo .TGA, název musí znít "NázevMístnostiBackground.bmp", respektive "NázevMístnostiBackground.tga".

Pro naši ukázkovou místnost tedy vezmeme už připravený soubor "Background.bmp" a přejmenujeme jej na "MyFirstRoomBackground.bmp".

Nakonec ještě do souboru s místností přidáme (opět na libovolné místo) řádek s celkovou velikostí pozadí v pixelech (v našem případě 80x80 pixelů):

MyFirstRoom.usr
map size: 80 x 80 pixels

**********
****<$ *?*
*br  $L*F*
***  vLLL*
**Tw *** *
**w   ****
*)   o b**
**Br*nW?**
**11******
**********

Tink: >
Flo: v
Benedict: ^
Willi: <

Řádek nemusí obsahovat přesně toto - stačí jakýkoliv řádek začínající na "map size", který po dvojtečce obsahuje dvě čísla - skutečnou šířku a výšku obrázku. Ostatní části ("x", "pixels" a jiné slouží jenom pro zlepšení čitelnosti - můžete je psát česky, ve zkratce, nebo třeba vůbec) - hra přijme například i řádek "map size:80-80".


-Předměty-

Přiřazování obrázků předmětům není o moc těžší. Pro každý předmět zapsaný pomocí vlastních znaků (tj. ne kapky nebo listy) vytvořte nebo najděte soubor s patřičným obrázkem (o listy se vůbec nestarejte, ty se zobrazí samy). Obrázek pojmenujte "NázevMístnostiZnakPředmětu.bmp" respektive "NázevMístnostiZnakPředmětu.tga".

TGA soubory mají tu výhodu, že mohou obsahovat i tzv. masku průhlednosti, která určuje, jak moc je která část obrázku průhledná (lze tak vytvářet třeba poloprůsvitné obrázky skleněných předmětů). BMP obrázky toto neumožňují; hra tedy jako průhlednou barvu nastaví bílou (RGB: 255, 255, 255) - proto v BMP obrázcích čistou bílou používejte jen na místa, která chcete mít průhledná.

Velikost obrázků předmětů musí být v měřítku 1:1, čili každé políčko 32x32 pixelů veliké. Každý předmět také může být rozanimovaný - stačí, aby v obrázku byly za sebou seřazené jednotlivé snímky animace (v jednom řádku).

Pro naši místnost budeme potřebovat tři obrázky:


  1. 64x32 pixelů veliký obrázek "MyFirstRoom1.tga" pro předmět ze znaků 1 pod Benediktem
  2. 32x64 pixelů veliký obrázek "MyFirstRoom$.tga" pro předmět ze znaků $ v horní části místnosti
  3. 96x64 pixelů veliký obrázek "MyFirstRoomL.bmp" se čtyřmi snímky pro předmět ze znaků L vedle Flo

Najít je můžete v podadresáři "DATA\UserLevels\UserGraphics" pod názvy "Branch1.tga", "Branch2.tga" a "SharkNail.bmp". Tyto soubory stačí jen přejmenovat.

Každý předmět potřebuje vlastní obrázek. Pak už jenom pro každý předmět s obrázkem vložíme na libovolné místo souboru s místností následující řádek:

"object ZnakPředmětu: N frame(s), XY pixels"

MyFirstRoom.usr
map size: 80 x 80 pixels

**********
****<$ *?*
*br  $L*F*
***  vLLL*
**Tw *** *
**w   ****
*)   o b**
**Br*nW?**
**11******
**********

Tink: >
Flo: v
Benedict: ^
Willi: <

object 1: 1 frame, 64 x 32 pixels
object $: 1 frame, 32 x 64 pixels
object L: 4 frames, 96 x 64 pixels

Jako minule, ani tady nejsou výrazy "frame(s)", "pixels" atd. důležité - hra přijme například i řádek "object L: 4-96-64" nebo "object L: Drahý počítači, obrázek L má tuším 4 snímky, a je 96 pixelů široký a 64 pixelů vysoký". Důležité je zachovat pořadí snímky - šířka - výška.

Šířka a výška se vztahují k velikosti jednoho snímku, ne celého obrázku. Celkovou velikost obrázku nastavte tak, aby jednotlivé snímky pokryly celou plochu (nenechávejte obrázek větší, než je potřeba).



Krok 9: Další možnosti

Soubory vlastních místností umožňují ještě několik dalších věcí: pokud například vytváříte úrovně ze Sokobana, může se hodit možnost vypnout zobrazování spižíren tmavším puntíkem. Toho docílíte pomocí vložení řádku

"show lift-zones: 0"

Hlavně ale nezapomeňte místa pro Becherovku označit alespoň v obrázku pozadí (třeba těmi zelenými tečkami) - jinak vám hráči moc nepoděkují.


Do souboru s místností také můžete přidávat komentáře - cokoliv od středníku do konce řádku hra ignoruje.


Hra také do souboru přidává řádek s počtem kroků v dosavadním nejkratším řešení v podobě např.

"solution: 286"





- Ono to mluví! -


Teď je naše místnost skoro dokonalá. Chybí jí snad jediná věc - nějaký ten rozhovor, nebo alespoň komentář od našich mravenců. I to jde jednoduše zařídit.

V podadresáři "DATA\UserLevels\UserDialogs" vytvoříme soubor s názvem "NázevMístnosti.dlg", v našem případě tedy "MyFirstRoom.dlg".

Do něj pak budeme zapisovat jednotlivé repliky. Zápis každé repliky se skládá ze dvou řádků. Na prvním jsou spouštěcí podmínky, na druhém vlastnosti repliky a samotný text. Mezi těmito dvěma řádky nesmí být žádné řádky vynechané. Naopak mezi jednotlivými dvojicemi řádky vynechávat lze - zvyšuje to čitelnost souboru.


Spouštěcí podmínky

Každá replika má jednu nebo více spouštěcích podmínek, které určují, kdy bude daná replika pronesena. Replika je spuštěna jen tehdy, když jsou všechny její podmínky splněny. Podmínek je možné nastavit více - stačí je na řádku oddělovat čárkami, např.:

"Time > 5000, Steps >= 4, LeavesEaten = 0"

Každá z podmínek má výraz na levé a pravé straně a operátor porovnání mezi nimi. Jako operátory porovnání lze použít tato znaménka:

=  (levá strana se rovná pravé straně)           
<> (levá strana se nerovná pravé straně)         
>= (levá strana je větší nebo rovná pravé straně)
<= (levá strana je menší nebo rovná pravé straně)
>  (levá strana je větší než pravá strana)       
<  (levá strana je menší než pravá strana)       

Výrazy se mohou skládat z proměnné, ke které je přičtena nebo odečtena nějaká celočíselná konstanta (například +30, -1 atd.) Pokud je ve výrazu proměnná, musí být na prvním místě, konstanta musí být uvedena až za ní. ANTZ rozeznávají tyto proměnné:


Time
, Steps, LeavesEaten, Tink X, Tink Y, Flo X, Flo Y, Benedict X, Benedict Y, Willi X, Willi Y, ObjectByChar ? X, ObjectByChar ? Y, ObjectByIndex ? X, ObjectByIndex ? Y, AlreadySaid #


Time - Čas, uplynulý od startu místnosti, měřený v milisekundách

Steps - Počet kroků, které už hráč udělal

LeavesEaten - Počet listů, které už Vilík snědl

Tink X, Flo X, Benedict X, Willi X - Vodorovná pozice příslušného mravence. Levý okraj mapy má X souřadnici 1, ale na ní musí být zeď. Nejnižší smysluplná hodnota je tedy 2 - tehdy mravenec stojí u levého okraje mapy.
Tink Y, Flo Y, Benedict Y, Willi Y - Svislá pozice příslušného mravence. Horní okraj mapy má Y souřadnici 1, ale na ní musí být zeď. Nejnižší smysluplná hodnota je tedy 2 - tehdy mravenec stojí u horního okraje mapy.

ObjectByChar ? X - Vodorovná pozice levého horního rohu objektu. Místo otazníku doplňte znak, ze kterého je daný objekt složen. Takto jdou získávat informace pouze o předmětech, které jsou složené z vlastních znaků. Nelze tak získat informace o kapkách nebo samostatných listech.
ObjectByChar ? Y - Svislá pozice levého horního rohu objektu. Místo otazníku doplňte znak, ze kterého je daný objekt složen.

ObjectByIndex ? X - Vodorovná pozice levého horního rohu objektu. Místo otazníku doplňte pořadí daného objektu. Takto lze přistupovat ke všem objektům, každý ve hře dostane své "pořadí" - objekty jsou číslovány od jedničky, postupně zleva doprava a shora dolů. Přesto bude nejsnazší si číslo zkontrolovat přímo ve hře: načtěte svou místnost a podržte klávesu Control - na všech objektech se objeví jejich čísla.
ObjectByIndex ? Y - Svislá pozice levého horního rohu objektu. Místo otazníku doplňte pořadí daného objektu.

AlreadySaid # - Určuje, jestli byla daná replika už pronesena, nebo ne. Místo mřížky doplňte ID (identifikační číslo, viz níže) repliky. Pokud už byla pronesena, proměnná má hodnotu 1, jinak má hodnotu 0. Každá replika se pronese nejvýše jednou.


Řádky s podmínkami pak mohou vypadat třeba takto (bez uvozovek):

"Time > 7000, Tink X = ObjectByIndex 10 X + 1, Tink Y = ObjectByIndex 10 Y"
...což znamená...
Spusť repliku, pokud už od startu uplynulo přes 7 sekund a Tink je na políčku vpravo od levého horního rohu objektu s číslem 10.

"Steps >= 20, ObjectByChar L X = 2, AlreadySaid 5 = 0"
...což znamená...
Spusť repliku, pokud už hráč udělal alespoň 20 kroků, předmět složený ze znaků L je u levého okraje místnosti a ještě nebyla pronesena replika s číslem 5.


Vlastnosti repliky

Vlastnosti a text repliky se zapisují na druhý řádek. Začíná znaky -> nebo =>, následovanými jménem mluvícího mravence (Tink, Flo, Benedict, Willi, nebo jejich česká jména) a dvojtečkou. Poté je uveden vlastní text repliky - ten je zapsán mezi dvojici cirkumflexů (^), svislou čarou (|) je rozdělen na dvě části - anglickou a českou. Pokud se necítíte na vytváření anglických rozhovorů, můžete část před svislou čarou vynechat - čáru ale zapište vždy.

"-> Willi: ^Hello, player!|Ahoj, hráči!^"
"-> Willi: ^|Ahoj, hráči!^"

Za text je ještě potřeba doplnit informace o ID (identifikačním čísle) repliky, časové prodlevě, která musí uplynout od konce minulé repliky (v milisekundách), a výrazu mluvícího mravence. Tyto údaje lze zadávat v libovolném pořadí, DelayFace jsou nepovinné.

"-> Willi: ^Oof, I hope you don't want me to eat that all, player...|Uf, hráči, doufám, že nechceš, abych to snědl všechno...^ ID: 17 Delay: 1500 Face: 1"

Tato replika bude mít ID 17, pronesena bude nejdříve vteřinu a půl po konci minulé věty, a Vilík při ní nasadí výraz číslo 1.

Pokud není uveden parametr Delay, nastaví se automaticky na 1000 (jednu sekundu). Pokud není uveden parametr Face, nasadí mravenec neutrální výraz 2. Hra obsahuje tyto výrazy:

  1. Široce otevřené oči   
  2. Neutrální výraz       
  3. Přivřené oči          
  4. Zavřené oči           
  5. Smutný výraz          
  6. Tink - mrknutí        
    Flo - šklebení        
    Benedikt - mračení    
    Vilík - zvednuté obočí
  7. Překvapení            

Oba řádky repliky by pak mohly vypadat takhle:

MyFirstRoom.dlg
LeavesEaten >= 3
-> Willi: ^Oof, I hope you don't want me to eat that all, player...|Uf, hráči, doufám, že nechceš, abych to snědl všechno...^ ID: 17 Delay: 1500 Face: 1

Replika se spustí, pokud v naší místnosti sní Vilík tři a více listů. Vilík při ní doširoka otevře oči.


Zvuk v MP3

Pokud budete mít k dispozici MP3 soubor s danou replikou, stačí jej zkopírovat do podadresáře "DATA\UserLevels\UserSpeech" pod názvem "NázevMístnostiIDRepliky_ČísloJazyka.mp3" - číslo jazyka je buď 1 pro angličtinu, nebo 2 pro češtinu. Vilíkova replika z předchozího příkladu by tedy měla pro češtinu soubor se jménem "MyFirstRoom17_2.mp3" - v adresáři už se nachází pod jménem "WilliOof_2.mp3" - stačí ji tedy jen přejmenovat.

Používejte raději soubory v nižší kvalitě - soubory s vyšším bitrate hru zpomalují.


Spouštění repliky více způsoby

Když budete chtít jednu repliku aktivovat několika různými způsoby, stačí ji do .DLG souboru zapsat vícekrát - pokaždé se stejným textem a ID, ale s jinými podmínkami. Replika se pak pronese (pořád jenom jednou) po splnění kterékoli skupiny podmínek.

MySecondRoom.dlg
Tink X = ObjectByIndex 1 X - 1, Tink Y = ObjectByIndex 1 Y
-> Tink: ^I'm at the drop!|Jsem u kapky!^ ID: 34

Tink X = ObjectByIndex 1 X + 1, Tink Y = ObjectByIndex 1 Y
-> Tink: ^I'm at the drop!|Jsem u kapky!^ ID: 34

Tink X = ObjectByIndex 1 X, Tink Y = ObjectByIndex 1 Y - 1
-> Tink: ^I'm at the drop!|Jsem u kapky!^ ID: 34

Tink X = ObjectByIndex 1 X, Tink Y = ObjectByIndex 1 Y + 1
-> Tink: ^I'm at the drop!|Jsem u kapky!^ ID: 34

V tomto příkladě Tink oznámí, že je u kapky (objektu s číslem 1), ať k ní přijde z kterékoliv strany.


Návaznost jednotlivých replik - rozhovory

Pokud chcete, aby na sebe několik replik navazovalo a tvořilo tak rozhovor, stačí tomu přizpůsobit jejich podmínky. Také nezapomeňte správně nastavovat hodnoty Delay - například u jedné věty rozdělené do dvou replik by měla mít druhá replika Delay nastaveno na 0, aby odstartovala ihned po skončení té první. Pokud tuto vlastnost nenastavíte, bude její hodnota 1000 milisekund.

MyThirdRoom.dlg
Time > 5000
-> Flo: ^Let's show our player how to make dialogues!|Pojďme hráči ukázat, jak na rozhovory!^ ID: 1 Face: 1

AlreadySaid 1 = 1
-> Tink: ^Okay.|Tak fajn.^ ID: 2 Face: 3

AlreadySaid 2 = 1
-> Flo: ^It's a pity...|Jenom je škoda...^ ID: 3 Face: 5

AlreadySaid 3 = 1
-> Flo: ^...we have no MP3 files for this dialoque.|...že pro tenhle rozhovor nemáme žádné MP3.^ ID: 4 Delay: 0 Face: 6

AlreadySaid 4 = 1
-> Tink: ^Well, I think this should be enough.|No, myslím, že tohle mu bude stačit.^ ID: 5 Delay: 1500 Face: 6


Repliky nejen od mravenců

Pronášet repliky nemusejí jen mravenci - mluvit mohou předměty, vypravěč, rodilí mluvčí...

Stačí jako mluvícího zapsat libovolné jiné jméno, a na začátek obou polovin textu (i české, i anglické) vložit řetězec určující barvu textu. Řetězec má podobu #$00ffffff, kde posledních šest znaků hexadecimálně reprezentuje barvu ve složkách B(modrá), G(zelená) a R(červená). První čtyři znaky musí zůstat #$00. Pokud barvu nezadáte, bude šedá.

#$00000000 - černá       
#$00ffffff - bílá        
#$00ff0000 - sytě modrá  
#$0000ff00 - sytě zelená 
#$000000ff - sytě červená
#$00ffff00 - azurová     
#$00ff00ff - purpurová   
#$0000ffff - žlutá       
atd...

Pokud vaše replika bude obsahovat prázdný text (tj. ^|^) a jako mluvící nebude zapsán žádný mravenec, nebude replika sice zobrazena, ale pokud hra nalezne patřičný MP3 soubor, přehraje jej - tak lze do místností zapracovat třeba zvonící telefon nebo jiné zvuky. V následujícím příkladě bychom pro zvuk telefonu potřebovali soubor "MyFourthRoom15_1.mp3" pro anglickou verzi, a "MyFourthRoom15_2.mp3" pro českou:

MyFourthRoom.dlg
Time > 2000
-> Nail: ^#$00997676Hello...|#$00997676Ahoj...^ ID: 1 Face: 1

Benedict X = 4, Benedict Y = 6
-> Phone: ^|^ ID: 15


Triky s podmínkami, aneb "Bylo, nebylo..."

Pokud potřebujete nějakou repliku pronášet v závislosti na tom, jestli byla určitá podmínka splněna někdy dříve, lze toho docílit jedním malým trikem:

Vložte do souboru prázdnou repliku (tedy s textem ^|^, a pochopitelně také bez zvuku v MP3), jejímž mluvčím nebude žádný mravenec. Tu nechte "spustit" za daných podmínek - např. pokud Flo dojde do rohu místnosti. Protože bude její text prázdný, nic viditelného (nebo slyšitelného) se nestane. Její proměnná AlreadySaid ale nabyde hodnoty 1. Toho lze někdy později využít:

MyFifthRoom.dlg
Flo X = 2, Flo Y = 2
-> Nothing: ^|^ ID: 318

Steps >= 100, AlreadySaid 318 = 0, AlreadySaid 320 = 0
-> Flo: ^Oof, so many steps and I haven't been to the corner yet!|Uf, tolik jsem se nachodila, a ještě jsem ani nebyla v rohu!^ ID: 319

Steps >= 100, AlreadySaid 318 = 1, AlreadySaid 319 = 0
-> Flo: ^Oof, so many steps... At least, I've been to the corner...|Uf, tolik jsem se nachodila... Alespoň, že už jsem byla v rohu...^ ID: 320






- Ono to i hraje! -


Pokud chcete, aby vaše místnost vypadala skutečně profesionálně, můžete do ní přidat i vlastní hudbu ve formátu MIDI. K tomu stačí v adresáři "DATA\UserLevels\UserMusic" vytvořit podadresář "NázevMístnosti" a zkopírovat do něj jeden nebo více ".mid" souborů. Ty se pak budou během řešení vaší místnosti přehrávat v náhodném pořadí. Příklad si můžete prohlédnout u místnosti "Adolf", která má jeden soubor s hudbou. Pokud takovýto adresář nevytvoříte, bude se přehrávat běžná hudba hry.






- Závěrem -


Nyní už víte vše, co je potřeba k vytvoření vlastní místnosti. Důležitou podmínkou samozřejmě je, aby vaše místnost měla řešení - to ovšem vůbec neznamená, že by muselo být jednoduché.

Pokud nějaké místnosti vytvoříte, budeme jen rádi, pokud nám je v příloze e-mailu pošlete ukázat (nejlépe se všemi soubory, které k místnosti patří - obrázky, dialogy, MP3 soubory atd.)

Všechny vaše místnosti zkusíme vyřešit, a pokud se nám některá bude opravdu líbit, můžeme vám k ní klidně doplnit případnou grafiku (výjimečně snad i namluvit repliky) a poslat vám ji (i s naším nejlepším řešením) zpět. Kromě toho vám můžeme poslat i místnosti od jiných hráčů. Místnosti také rádi umístíme na případných WWW stránkách hry.

V adresáři "DATA\UserLevels" se už nacházejí dvě připravené místnosti - "Adolf" a "LongDrinkRemake". Ta první je replikou snad nejznámější úrovně ze Sokobana, ta druhá je replikou jedné místnosti ze samotných mravenců. Kromě těchto místností je vám k dispozici i několik MP3 souborů jednotlivých mravenců spolu s obrázky několika předmětů - větviček, kamenů, hřebíků atd.

Teď už to tedy chce jenom nějaký ďábelský nápad...



Copyright © 2004 - Karel Štěpka jr.